package org.jflame.auth.session;

import java.util.Optional;

public interface SessionAdapter {

    /**
     * 获取会话id
     * 
     * @param create
     * @return
     */
    Optional<String> getSessionId(boolean create);

    /**
     * 从会话中获取属性值
     * 
     * @param key
     * @return
     */
    Optional<Object> getAttribute(String key);

    /**
     * 设置属性到会话
     * 
     * @param key
     * @param value
     */
    void setAttribute(String key, Object value);

    /**
     * 注销当前会话
     */
    void invalidate();

    /**
     * 生成新会话,如果存在当前会话注销
     */
    void renew();

}
